home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
taropyon
/
hewin
/
ccisrc
/
wpaper.cci
< prev
Wrap
Text File
|
1993-11-30
|
6KB
|
217 lines
/*************************************************************************
* "wpaper.cci" : 壁紙設定
*************************************************************************/
int _wall_setCfg(char *obj, int cfg)
{
char *s;
switch( cfg )
{ case APL_WALLPAPER_CFG_NORMAL: s = "NORMAL"; break;
case APL_WALLPAPER_CFG_CENTER: s = "CENTER"; break;
case APL_WALLPAPER_CFG_TILE: s = "TILE"; break;
default: s = "???"; break;
}
MNU_setObj(obj, 1, MNU_STR, 'D', "Display mode [%s]", s, 1, NULL, NULL );
}
char *_wall_setFile(char *obj, char *path )
{
int ret;
char *s;
char *fdl;
static char buf[128];
if ( (fdl = FDL_open(0)) == NULL )
return (path);
FDL_set_title( fdl,"WallPaper tiff file");
FDL_set_wildcard( fdl, "*.tif");
FDL_set_defaultFilename( fdl, path);
ret = FDL_start(fdl);
s = FDL_get_filename(fdl);
if ( ret == NORMAL && strlen(s) > 0 )
{
strcpy( buf, s );
path = buf;
MNU_setObj(obj, 0, MNU_STR, 'F', "FILE : %s", path , 0, NULL, NULL );
}
FDL_close(fdl);
return (path);
}
int WallTiff()
{
int ret, cfg, frcol, bkcol;
char *mnu;
char *obj;
char *path;
cfg = APL_getWallPaper(1);
frcol = APL_getWallPaper(2) & 15;
bkcol = APL_getWallPaper(3) & 15;
path = APL_getWallPaper(4);
obj = MNU_alloc(7);
MNU_setObj(obj, 0, MNU_STR, 'F', "FILE : %s", path , 0, NULL, NULL );
_wall_setCfg(obj,cfg);
MNU_setObj(obj, 2, MNU_BLK, 0, NULL, NULL , 0, NULL, NULL );
MNU_setObj(obj, 3, MNU_DIG, 'F', "前景色 %d", frcol, 2, NULL, NULL );
MNU_setObj(obj, 4, MNU_DIG, 'B', "背景色 %d", bkcol, 3, NULL, NULL );
MNU_setObj(obj, 5, MNU_BLK, 0, NULL, NULL , 0, NULL, NULL );
MNU_setObj(obj, 6, MNU_NOR, 'S', "決定", NULL , 4, NULL, NULL );
mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, MNUATT_EXIT, obj, "WallPaper" );
while ( 1 )
{ ret = MNU_start ( mnu );
if ( ret < 0 || ret == 4 )
break;
switch( ret )
{ case 0: /* ファイル */
path = _wall_setFile(obj, path);
break;
case 1:
if ( cfg == APL_WALLPAPER_CFG_NORMAL )
{ cfg = APL_WALLPAPER_CFG_CENTER;
} else if ( cfg == APL_WALLPAPER_CFG_CENTER )
{ cfg = APL_WALLPAPER_CFG_TILE;
} else if ( cfg == APL_WALLPAPER_CFG_TILE )
{ cfg = APL_WALLPAPER_CFG_NORMAL;
}
_wall_setCfg(obj,cfg);
break;
case 2:
if ( (ret = COLSET_dlg(frcol)) >= 0 )
{ frcol = ret;
MNU_setObj(obj, 3, MNU_DIG, 'F', "前景色 %d", frcol, 2, NULL, NULL );
}
break;
case 3:
if ( (ret = COLSET_dlg(bkcol)) >= 0 )
{ bkcol = ret;
MNU_setObj(obj, 4, MNU_DIG, 'B', "背景色 %d", bkcol, 3, NULL, NULL );
}
break;
}
}
MNU_close(mnu);
MNU_free(obj);
if ( ret == 4 )
{ APL_setWallPaper( APL_WALLPAPER_TIFF, cfg, frcol,bkcol, path );
}
return (NORMAL);
}
#if 0
int WallColor()
{
int ret, col;
char buf[16];
char *dlg;
dlg = DLG_getsOpen( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, 320,
"壁紙の色番号を入力してください。");
DLG_getsSetTitle( dlg, "WallPaper" );
col = APL_getWallPaper(3); /* get BkCol */
sprintf( buf, "%d", col );
ret = DLG_getsStart( dlg, 15, buf );
if ( ret > 0 && (col = atoi(buf)) >= 0 )
{ APL_setWallPaper( APL_WALLPAPER_NORMAL, col);
}
DLG_getsClose(dlg);
return (NORMAL);
}
#else
int WallColor()
{
int col;
col = APL_getWallPaper(3); /* get BkCol */
col = COLSET_dlg2( col );
if ( col >= 0 )
{ APL_setWallPaper( APL_WALLPAPER_NORMAL, col);
}
MOS_initMoveArea();
return (NORMAL);
}
#endif
/*************************************************************************
* 壁紙の設定
*-------------------------------------------------------------------------
* アイテム登録可能
* パラメータ:なし
*************************************************************************/
int CCI_setWallPaper(int argc, char **argv)
{
int ret;
char *mnu;
char *obj;
obj = MNU_alloc(2);
MNU_setObj(obj, 0, MNU_NOR, 'C', "Color 色指定", NULL, 0, NULL, NULL );
MNU_setObj(obj, 1, MNU_NOR, 'T', "Tiff ファイル指定", NULL, 1, NULL, NULL );
mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME, MNUATT_EXIT, obj, "WallPaper" );
ret = MNU_start ( mnu );
MNU_close(mnu);
MNU_free(obj);
switch ( ret )
{
case 0: WallColor(); break;
case 1: WallTiff(); break;
}
return (NORMAL);
}
/*************************************************************************
* アプリケーション・カラーテーブルの変更(デバッグ用)
*-------------------------------------------------------------------------
* アイテム登録可能
* パラメータ:なし
*************************************************************************/
int CCI_setColPtn_1( int argc, char **argv )
{
#if 0 /* DEBUG CHECK */
int i;
for ( i = 0; i <20; ++i )
{
printf( "AplCol[%2d] = $%04X\n", i, AplCol[i] );
fflush(stdout);
}
#endif
APLCOL_WHITE = C_HWHITE;
APLCOL_BLACK = C_MBLACK;
APLCOL_GRAY = C_WHITE;
APLCOL_DARK = C_HBLACK;
APLCOL_SHADOW = C_MBLACK;
APLCOL_WARNNING = C_HYELLOW;
APLCOL_ERROR = C_HRED;
APLCOL_SELBOX = C_HRED;
APLCOL_INFO = C_HGREEN;
APLCOL_WINBOX = C_RED;
APLCOL_GRAY0 = C_HBLACK;
APLCOL_GRAY1 = C_RED;
APLCOL_GRAY2 = C_WHITE;
APLCOL_GRAY3 = C_MAGENTA;
APLCOL_METAL0 = C_GREEN;
APLCOL_METAL1 = C_CYAN;
APLCOL_METAL2 = C_YELLOW;
APLCOL_DLGBASE = C_MAGENTA;
APLCOL_BLUE = C_HBLUE;
APLCOL_RED = C_HRED;
APLCOL_MAGENTA = C_HMAGENTA;
APLCOL_GREEN = C_HGREEN;
APLCOL_CYAN = C_HCYAN;
APLCOL_HYELLOW = C_HYELLOW;
return (NORMAL);
}